package org.fast.easy.auth.service;

import cn.dev33.satoken.secure.BCrypt;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import me.zhyd.oauth.model.AuthUser;
import org.apache.dubbo.config.annotation.DubboReference;
import org.fast.easy.auth.properties.CaptchaProperties;
import org.fast.easy.auth.properties.UserPasswordProperties;
import org.fast.easy.common.i18n.util.MessageUtils;
import org.fast.easy.core.constant.Constants;
import org.fast.easy.core.constant.TenantConstants;
import org.fast.easy.core.domain.auth.form.RegisterBody;
import org.fast.easy.core.domain.auth.model.LoginUser;
import org.fast.easy.core.domain.auth.model.XcxLoginUser;
import org.fast.easy.framework.exception.user.UserException;
import org.fast.easy.framework.satoken.utils.LoginHelper;
import org.fast.easy.framework.tenant.exception.TenantException;
import org.fast.easy.framework.tenant.helper.TenantHelper;
import org.fast.easy.system.upms.domain.vo.SysUserVo;
import org.fast.easy.system.upms.service.ISysPermissionService;
import org.fast.easy.system.upms.service.ISysSocialService;
import org.fast.easy.system.upms.service.ISysTenantService;
import org.fast.easy.system.upms.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * 登录校验方法
 *
 * @author ruoyi
 */
@Service
@Slf4j
public class SysLoginService extends AbstractSysLoginService implements ISysLoginService {


    @Resource
    private UserPasswordProperties userPasswordProperties;
    @Resource
    private CaptchaProperties captchaProperties;
    public SysLoginService(UserPasswordProperties userPasswordProperties, CaptchaProperties captchaProperties) {
        super(userPasswordProperties, captchaProperties);
    }

    @Override
    public void socialRegister(AuthUser authUserData) {

    }

    @Override
    public void checkTenant(String tenantId) {

    }

    @Override
    public void register(RegisterBody registerBody) {

    }

    @Override
    public LoginUser getLoginUserInfoByUsername(String username, String tenantId) {
        return null;
    }

    @Override
    public LoginUser getLoginUserInfoByUserId(Long userId, String tenantId) {
        return null;
    }

    @Override
    public LoginUser getLoginUserInfoByPhonenumber(String phonenumber, String tenantId) {
        return null;
    }

    @Override
    public LoginUser getLoginUserInfoByEmail(String email, String tenantId) {
        return null;
    }

    @Override
    public XcxLoginUser getUserInfoByOpenid(String openid) throws UserException {
        return null;
    }

    @Override
    public LoginUser buildLoginUser(SysUserVo userVo) {
        return null;
    }

    @Override
    public void recordLoginInfo(Long userId, String ip) {

    }
}
